package com.siyougame.common.utils.doubao;

import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONObject;

public class DouBaoOcrUtil {
    public static String getOcrResult(String imgPath) {
        String url = "https://ark.cn-beijing.volces.com/api/v3/chat/completions";

        // 构造请求数据
        JSONObject data = new JSONObject();
        data.put("model", "ep-20250122163319-x4kcn");





        JSONObject messageSys = new JSONObject();
        messageSys.put("role", "user");

        // 构造内容
        JSONObject textContentSys = new JSONObject();
        textContentSys.put("role", "system");
        textContentSys.put("content", "你是一名高级资料检查员，你负责检查我每次上传的票据图片，并以json的格式返回：流水号、打印时间、收货单位、发货单位、车号、货名、规格型号、毛重、皮重、扣重、净重、出厂净重、毛重时间、皮重时间、承运单位、备注说明。请注意最后的值是备注说明，承运单位一般是空的(如果识别到值需要填写)，规格型号中的内容一般包含普石、高标石、细石关键字，车号的内容长度不得少于7位");




        // 构造messages
        JSONObject message = new JSONObject();
        message.put("role", "user");

        // 构造内容
//        JSONObject textContent = new JSONObject();
//        textContent.put("type", "text");
//        textContent.put("text", "你是一名高级资料检查员，你负责检查我每次上传的票据图片，并以json的格式返回：流水号、打印时间、收货单位、发货单位、车号、规格型号、毛重、皮重、扣重、净重、出厂净重、毛重时间、皮重时间、承运单位、备注说明。请注意最后的值是备注说明，承运单位一般是空的(如果识别到值需要填写)，规格型号中的内容一般包含普石、高标石、细石关键字");

        JSONObject imageContent = new JSONObject();
        imageContent.put("type", "image_url");
        JSONObject imageUrl = new JSONObject();
        imageUrl.put("url", imgPath);
        imageContent.put("image_url", imageUrl);

        // 将内容加入message
        message.put("content", new JSONObject[] {  imageContent });

        // 将message加入data
        data.put("messages", new JSONObject[] { textContentSys,message });

        // 发送请求
        System.out.println(imgPath+"-发送请求时间："+ DateUtil.now());
        String response = HttpRequest.post(url)
                .header("Authorization", "Bearer 8373e29c-5445-4c4d-ae28-5f27bbf3162b")
                .header("User-Agent", "Apifox/1.0.0 (https://apifox.com)")
                .header("Content-Type", "application/json")
                .header("Accept", "*/*")
                .header("Host", "ark.cn-beijing.volces.com")
                .header("Connection", "keep-alive")
                .body(data.toString())
                .execute()
                .body();
        System.out.println(imgPath+"-响应时间："+ DateUtil.now());
        return response;
    }
}
